home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / game / think / Tribus.lha / Tribus / Tribus.bas < prev    next >
BASIC Source File  |  1992-02-13  |  14KB  |  597 lines

  1. CLEAR,22000&:CLEAR,64000&
  2.  
  3. SCREEN 1,320,256,4,1
  4. WINDOW 1,"Bois=1 Lance=10 Charrue=75 Ha.planté=1",,16,1
  5.  
  6. debut:
  7.  
  8. PALETTE 0,0,0,0
  9. PALETTE 1,1,1,1
  10. PALETTE 2,.86,0,0
  11. PALETTE 3,0,.86,0
  12. PALETTE 4,0,.46,0
  13. PALETTE 5,.80,.66,.26
  14. PALETTE 6,.33,.33,0
  15. PALETTE 7,.20,.46,0
  16. PALETTE 8,.45,.40,.13
  17. PALETTE 9,0,0,0
  18. PALETTE 10,0,0,.73
  19. PALETTE 11,.86,.86,.86
  20. PALETTE 12,.40,.40,.40
  21. PALETTE 13,1,.93,.26
  22. PALETTE 14,1,.40,0
  23. PALETTE 15,1,.46,.93
  24.  
  25. GOSUB presentation
  26. GOSUB pause
  27.  
  28. RANDOMIZE TIMER
  29.  
  30. CLOSE 1
  31. DIM tb%(19523)
  32. OPEN "DT01" FOR INPUT AS 1
  33. FOR q=0 TO 19523
  34. tb%(q)=CVI(INPUT$(2,1))
  35. NEXT
  36. CLOSE 1
  37. DIM d%(62,9)
  38. OPEN "DT02" FOR INPUT AS 1
  39. FOR k=1 TO 9
  40. FOR q=0 TO 62
  41. d%(q,k)=CVI(INPUT$(2,1))
  42. NEXT q,k
  43. CLOSE 1
  44. DIM vege%(14,14)
  45. OPEN "DT03" FOR INPUT AS 1
  46. FOR y=1 TO 14
  47. FOR x=1 TO 14
  48. vege%(x,y)=CVI(INPUT$(2,1))
  49. NEXT x,y
  50. CLOSE 1
  51. DIM prop%(14,14)
  52. OPEN "DT04" FOR INPUT AS 1
  53. FOR y=1 TO 14
  54. FOR x=1 TO 14
  55. prop%(x,y)=CVI(INPUT$(2,1))
  56. NEXT x,y
  57. CLOSE 1
  58. DIM vd%(194)
  59. OPEN "DT05" FOR INPUT AS 1
  60. FOR q=0 TO 194
  61. vd%(q)=CVI(INPUT$(2,1))
  62. NEXT
  63. CLOSE 1
  64. PUT(0,0),tb%,PSET
  65. ERASE tb%
  66. DIM j&(4,15)
  67. FOR q=1 TO 4
  68. j&(q,1)=10+INT(RND*41)
  69. j&(q,3)=30+INT(RND*21)
  70. j&(q,6)=j&(q,3)
  71. j&(q,5)=INT(RND*11)
  72. j&(q,12)=INT(RND*3)
  73. READ x1%(q),x2%(q),y1%(q),y2%(q),pasx%(q),pasy%(q),vdx(q),vdy(q),j&(q,2)
  74. NEXT
  75.  
  76. DATA 1,14,1,14,1,1,11,10,31,14,1,1,14,-1,1,191,10,32
  77. DATA 14,1,14,1,-1,-1,191,190,32,1,14,14,1,1,-1,11,190,27
  78.  
  79. nombrejoueur:
  80.  
  81. COLOR 1,10:LOCATE 29,2:INPUT"Combien de joueurs (1 à 4) ";nj
  82. GOSUB videligne
  83. IF nj<1 OR nj>4 THEN GOTO nombrejoueur
  84. FOR q=1 TO nj:j&(q,0)=1:NEXT
  85.  
  86. debutjeu:
  87.  
  88. FOR q=1 TO 4
  89. IF j&(q,3)=0 THEN finjeu
  90. IF j&(q,0)=0 THEN GOSUB machinejoue:GOTO finexpedition
  91. COLOR 1,2:LOCATE 2,38:PRINT CHR$(48+q)
  92. GOSUB arge:GOSUB surf:GOSUB habi:GOSUB bois:GOSUB lanc:GOSUB char
  93. GOSUB inac:GOSUB buch:GOSUB pays:GOSUB gard:GOSUB guer
  94.  
  95. ventebois:
  96. IF j&(q,4)=0 THEN achatcharrues
  97. COLOR 1,10:LOCATE 29,2:INPUT"Combien vendez vous de bois ";rp
  98. GOSUB videligne
  99. IF rp<0 OR rp>j&(q,4) THEN ventebois
  100. j&(q,4)=j&(q,4)-rp:GOSUB bois
  101. j&(q,1)=j&(q,1)+rp:GOSUB arge
  102.  
  103. achatcharrues:
  104.  
  105. IF j&(q,1)<75 THEN deboisement
  106. COLOR 1,10:LOCATE 29,2:INPUT"Combien achetez vous de charrue ";rp
  107. GOSUB videligne
  108. IF rp<0 OR rp*75>j&(q,1) THEN achatcharrues
  109. j&(q,12)=j&(q,12)+rp:GOSUB char
  110. j&(q,1)=j&(q,1)-rp*75:GOSUB arge
  111.  
  112. deboisement:
  113. COLOR 1,10:LOCATE 29,2:INPUT"Combien d'Ha déboisez vous ";rp
  114. GOSUB videligne
  115. IF rp<0 THEN deboisement
  116. FOR y=y1%(q) TO y2%(q) STEP pasy%(q)
  117. FOR x=x1%(q) TO x2%(q) STEP pasx%(q)
  118. IF rp=0 OR j&(q,6)<1 THEN cultures
  119. IF prop%(x,y)=q THEN
  120.   IF vege%(x,y)<7 THEN
  121.       px=vege%(x,y)
  122.       vege%(x,y)=7:PUT(x*15-9,y*15-9),d%(0,7),PSET
  123.       j&(q,6)=j&(q,6)-1:GOSUB inac
  124.       j&(q,7)=j&(q,7)+1:GOSUB buch
  125.       j&(q,4)=j&(q,4)+px:GOSUB bois
  126.       rp=rp-1
  127.     END IF
  128. END IF
  129. NEXT x,y
  130.  
  131. cultures:
  132. IF j&(q,1)=0 OR j&(q,6)=0 THEN achatlance
  133. COLOR 1,10:LOCATE 29,2:INPUT"Combien d'Ha plantez vous ";rp
  134. GOSUB videligne
  135. IF rp<0 THEN cultures
  136. FOR y=y1%(q) TO y2%(q) STEP pasy%(q)
  137. FOR x=x1%(q) TO x2%(q) STEP pasx%(q)
  138. IF rp=0 OR j&(q,6)<1 OR j&(q,1)<1 THEN achatlance
  139. IF prop%(x,y)=q THEN
  140.   IF vege%(x,y)=7 OR vege%(x,y)=8 THEN
  141.       vege%(x,y)=9:PUT(x*15-9,y*15-9),d%(0,9),PSET
  142.       j&(q,6)=j&(q,6)-1:GOSUB inac
  143.       j&(q,8)=j&(q,8)+1:GOSUB pays
  144.       j&(q,1)=j&(q,1)-1:GOSUB arge
  145.       rp=rp-1
  146.     END IF
  147. END IF
  148. NEXT x,y
  149.  
  150. achatlance:
  151.  
  152. IF j&(q,1)<10 THEN gardiennage
  153. COLOR 1,10:LOCATE 29,2:INPUT"Combien achetez vous de lance ";rp
  154. GOSUB videligne
  155. IF rp<0 OR rp*10>j&(q,1) THEN achatlance
  156. j&(q,5)=j&(q,5)+rp:GOSUB lanc
  157. j&(q,1)=j&(q,1)-rp*10:GOSUB arge
  158.  
  159. gardiennage:
  160. IF j&(q,6)=0 OR j&(q,5)=0 THEN guerriers
  161. COLOR 1,10:LOCATE 29,2:INPUT"Combien de gardiens ";rp
  162. GOSUB videligne
  163. IF rp<0 OR rp>j&(q,6) OR rp>j&(q,5) THEN gardiennage
  164. IF rp>0 THEN
  165.       j&(q,6)=j&(q,6)-rp:GOSUB inac
  166.       j&(q,9)=j&(q,9)+rp:GOSUB gard
  167.       j&(q,5)=j&(q,5)-rp:GOSUB lanc
  168.       j&(q,13)=j&(q,13)+rp
  169. END IF
  170.  
  171. guerriers:
  172.  
  173. IF j&(q,6)=0 OR j&(q,5)=0 THEN finexpedition
  174. COLOR 1,10:LOCATE 29,2:INPUT"Combien de guerriers ";rp
  175. GOSUB videligne
  176. IF rp<0 OR rp>j&(q,6) OR rp>j&(q,5) THEN guerriers
  177. IF rp>0 THEN
  178.       j&(q,6)=j&(q,6)-rp:GOSUB inac
  179.       j&(q,10)=j&(q,10)+rp:GOSUB guer
  180.       j&(q,5)=j&(q,5)-rp:GOSUB lanc
  181.       j&(q,13)=j&(q,13)+rp
  182. END IF
  183.  
  184. expedition:
  185. IF j&(q,10)=0 THEN finexpedition
  186. COLOR 1,10:LOCATE 29,2:INPUT"Quel village attaquez vous ";rp
  187. GOSUB videligne
  188. IF rp<0 OR rp>4 OR rp=q THEN expedition
  189. IF rp>0 THEN
  190.       j&(q,11)=rp
  191. END IF
  192. finexpedition:
  193. finjeu:
  194. GOSUB videligne
  195. NEXT q
  196.  
  197. combats:
  198.  
  199. attaquant=INT(RND*4)+1
  200. IF j&(attaquant,11)>0 THEN
  201.       defenseurs=j&(attaquant,11)
  202.       mortdefenseurs=INT(RND*j&(attaquant,10))
  203.       mortattaquant=INT(RND*j&(defenseurs,9))
  204.       j&(defenseurs,9)=j&(defenseurs,9)-mortdefenseurs
  205.       IF j&(defenseurs,9)<0 THEN j&(defenseurs,9)=0
  206.       j&(attaquant,10)=j&(attaquant,10)-mortattaquant
  207.       IF j&(attaquant,10)<0 THEN j&(attaquant,10)=0
  208.       j&(attaquant,14)=1:j&(defenseurs,15)=1
  209.       IF j&(attaquant,10)>j&(defenseurs,9) THEN GOSUB invasion
  210.       j&(attaquant,11)=0
  211. END IF
  212. FOR q=1 TO 4
  213. IF j&(q,11)>0 THEN combats
  214. NEXT q
  215.  
  216. recoltes:
  217.  
  218. an=an+1
  219. WINDOW 3," INVASIONS",(223,131)-(306,214),0,1
  220. FOR y=1 TO 14
  221. FOR x=1 TO 14
  222. IF prop%(x,y)<5 THEN LINE (x*6-6,y*6-6)-STEP(4,4),prop%(x,y)+11,bf
  223. IF prop%(x,y)=50 THEN LINE (x*6-6,y*6-6)-STEP(4,4),6,bf
  224. IF prop%(x,y)=60 THEN LINE (x*6-6,y*6-6)-STEP(4,4),10,bf
  225. IF prop%(x,y)>9 AND prop%(x,y)<50 THEN LINE (x*6-6,y*6-6)-STEP(4,4),prop%(x,y)/10+11,bf
  226. NEXT x,y
  227. WINDOW OUTPUT 1
  228. FOR q=1 TO 4
  229. IF j&(q,3)<1 THEN finrecoltes
  230. catastrophe:
  231. hz=INT(RND*100):IF hz>30 THEN fincatastrophe
  232. WINDOW 4,,(12,24)-(210,104),0,1
  233. PRINT
  234. COLOR 2,0:PRINT "     * CATASTROPHE *":PRINT
  235. hz=1+INT(RND*5)
  236. cata=0:aieaie=1
  237. ON hz GOTO peste,sauterelles,termites,innondations,rongeurs
  238. peste:
  239. PRINT "la fievre jaune frappe":PRINT
  240. PRINT "de nombreux habitants":PRINT
  241. PRINT "du village N°";q:PRINT
  242. FOR k=6 TO 10
  243. mortcata=INT(RND*j&(q,k))
  244. j&(q,k)=j&(q,k)-mortcata:cata=cata+mortcata
  245. NEXT k
  246. PRINT "On déplore"cata"mort";:IF cata>1 THEN PRINT "s"
  247. GOTO fincatastrophe
  248. sauterelles:
  249. PRINT "Un nuage de sauterelles":PRINT
  250. PRINT "dévore les champs de blé":PRINT
  251. PRINT "du village N°";q:PRINT
  252. FOR y=1 TO 14
  253. FOR x=1 TO 14
  254. hz=INT(RND*100)
  255. IF vege%(x,y)=9 AND hz<50 AND prop%(x,y)=q THEN
  256.   WINDOW OUTPUT 1
  257.   vege%(x,y)=8:PUT(x*15-9,y*15-9),d%(0,8),PSET:cata=cata+1
  258. END IF
  259. NEXT x,y
  260. WINDOW OUTPUT 4
  261. PRINT "Il y a"cata"Ha de détruit";:IF cata>1 THEN PRINT "s"
  262. GOTO fincatastrophe
  263. termites:
  264. PRINT "Les termites envahissent":PRINT
  265. PRINT "les stock de bois":PRINT
  266. PRINT "du village N°";q:PRINT
  267. cata=INT(RND*j&(q,4))
  268. j&(q,4)=j&(q,4)-cata
  269. PRINT "On compte"cata"m³ envolé";:IF cata>1 THEN PRINT "s"
  270. GOTO fincatastrophe
  271. innondations:
  272. PRINT "La riviere envahit":PRINT
  273. PRINT "les petites maisons":PRINT
  274. PRINT "du village N°";q:PRINT
  275. cata=INT(RND*j&(q,12))
  276. j&(q,12)=j&(q,12)-cata
  277. PRINT "On perd"cata"charrue";:IF cata>1 THEN PRINT "s"
  278. GOTO fincatastrophe
  279. rongeurs:
  280. PRINT "Les rats envahissent":PRINT
  281. PRINT "les réserves de grains":PRINT
  282. PRINT "du village N°";q:PRINT
  283. cata=INT(RND*j&(q,1))
  284. j&(q,1)=j&(q,1)-cata
  285. PRINT "Perte estimée à"cata"P.O"
  286. fincatastrophe:
  287. j&(q,5)=j&(q,5)+j&(q,10)+j&(q,9)
  288. j&(q,3)=0
  289. mortcombat%=j&(q,13)-j&(q,10)-j&(q,9):j&(q,13)=0
  290. FOR k=6 TO 10
  291. j&(q,3)=j&(q,3)+j&(q,k):j&(q,k)=0
  292. NEXT k
  293. j&(q,6)=j&(q,3)
  294. WINDOW OUTPUT 1
  295. COLOR 1,2:LOCATE 2,38:PRINT CHR$(48+q)
  296. GOSUB arge:GOSUB surf:GOSUB habi:GOSUB bois:GOSUB lanc:GOSUB char
  297. GOSUB inac:GOSUB buch:GOSUB pays:GOSUB gard:GOSUB guer
  298. FOR y=y1%(q) TO y2%(q) STEP pasy%(q)
  299. FOR x=x1%(q) TO x2%(q) STEP pasx%(q)
  300. IF prop%(x,y)=q THEN
  301.    IF vege%(x,y)=9 THEN
  302.       re%=15+INT(RND*j&(q,12))
  303.       recolte%=recolte%+re%
  304.       j&(q,1)=j&(q,1)+re%:GOSUB arge
  305.     END IF
  306. END IF
  307. NEXT x,y
  308.  
  309. revenu=j&(q,3)*5
  310. exedent=j&(q,1)-revenu
  311. j&(q,1)=j&(q,1)-revenu:IF j&(q,1)<0 THEN j&(q,1)=0
  312. GOSUB arge
  313. IF exedent<-4 THEN
  314.       mortfaim%=ABS(exedent/5)
  315.       IF mortfaim%>j&(q,3) THEN mortfaim%=j&(q,3)
  316.       GOSUB videligne:COLOR 1,10
  317.       LOCATE 29,9:PRINT "AN"an;
  318.       IF an<10 THEN PRINT " ";
  319.       PRINT " C'est la famine !!!"
  320.       j&(q,3)=j&(q,3)-mortfaim%
  321.       GOSUB habi
  322.       j&(q,6)=j&(q,6)-mortfaim%
  323.       GOSUB inac
  324. END IF
  325. IF exedent>9 THEN
  326.       arrivant%=exedent/10:j&(q,6)=j&(q,6)+arrivant%
  327.       j&(q,3)=j&(q,3)+arrivant%
  328.       GOSUB videligne:COLOR 1,10
  329.       LOCATE 29,9:PRINT "AN"an;
  330.       IF an<10 THEN PRINT " ";
  331.       PRINT " Tout va bien !!!"
  332.       GOSUB inac
  333.       GOSUB habi
  334. END IF
  335.  
  336. IF exedent>-10 AND exedent<10 THEN
  337.       GOSUB videligne:COLOR 1,10
  338.       LOCATE 29,9:PRINT "AN"an;
  339.       IF an<10 THEN PRINT " ";
  340.       PRINT " Ca peut aller !!!"
  341. END IF
  342. suite:
  343. IF j&(q,3)<1 THEN j&(q,3)=0:PUT(vdx(q),vdy(q)),vd%,PSET
  344. GOSUB resultat
  345. GOSUB pause
  346. IF aieaie=1 THEN
  347.    WINDOW CLOSE 4
  348.    aieaie=0
  349. END IF
  350. WINDOW CLOSE 2:GOSUB videligne
  351. finrecoltes:
  352. NEXT q
  353. WINDOW CLOSE 3
  354. FOR y=1 TO 14
  355. FOR x=1 TO 14
  356.   IF vege%(x,y)=7 THEN
  357.       hz=1+INT(RND*6)
  358.       vege%(x,y)=hz:PUT(x*15-9,y*15-9),d%(0,hz),PSET
  359.     END IF
  360. IF vege%(x,y)=8 THEN vege%(x,y)=7:PUT(x*15-9,y*15-9),d%(0,7),PSET
  361. IF vege%(x,y)=9 THEN vege%(x,y)=8:PUT(x*15-9,y*15-9),d%(0,8),PSET
  362. NEXT x,y
  363. GOTO debutjeu
  364.  
  365. END
  366.  
  367. invasion:
  368.  
  369. q=attaquant:k=defenseurs
  370. j&(q,14)=j&(q,14)+1:j&(k,15)=j&(k,15)+1
  371. rp=1+INT(RND*(j&(q,10)-j&(k,9)))
  372. FOR y=y1%(q) TO y2%(q) STEP pasy%(q)
  373. FOR x=x1%(q) TO x2%(q) STEP pasx%(q)
  374. IF prop%(x,y)=k THEN prop%(x,y)=q:rp=rp-1:j&(q,2)=j&(q,2)+1:j&(k,2)=j&(k,2)-1
  375. IF rp=0 THEN pillage
  376. NEXT x,y
  377. pillage:
  378. orpris=INT(RND*j&(k,1))
  379. j&(k,1)=j&(k,1)-orpris
  380. j&(q,1)=j&(q,1)+orpris
  381. charpris=INT(RND*j&(k,12))
  382. j&(k,12)=j&(k,12)-charpris
  383. j&(q,12)=j&(q,12)+charpris
  384. boispris=INT(RND*j&(k,4))
  385. j&(k,4)=j&(k,4)-boispris
  386. j&(q,4)=j&(q,4)+boispris
  387. RETURN
  388.  
  389. videligne:
  390. COLOR 1,10:LOCATE 29,2:PRINT STRING$(37," ")
  391. RETURN
  392.  
  393. arge:
  394. COLOR 13,2
  395. LOCATE 4,32:PRINT STRING$(6," ")
  396. LOCATE 4,32:PRINT USING"######";j&(q,1)
  397. RETURN
  398.  
  399. surf:
  400. COLOR 1,2
  401. LOCATE 6,34:PRINT STRING$(4," ")
  402. LOCATE 6,34:PRINT USING"####";j&(q,2)
  403. RETURN
  404.  
  405. habi:
  406. COLOR 1,2
  407. LOCATE 8,34:PRINT STRING$(4," ")
  408. LOCATE 8,34:PRINT USING"####";j&(q,3)
  409. RETURN
  410.  
  411. bois:
  412. COLOR 1,2
  413. LOCATE 10,34:PRINT STRING$(4," ")
  414. LOCATE 10,34:PRINT USING"####";j&(q,4)
  415. RETURN
  416.  
  417. lanc:
  418. COLOR 1,2
  419. LOCATE 12,34:PRINT STRING$(4," ")
  420. LOCATE 12,34:PRINT USING"####";j&(q,5)
  421. RETURN
  422.  
  423. char:
  424. COLOR 1,2
  425. LOCATE 14,34:PRINT STRING$(4," ")
  426. LOCATE 14,34:PRINT USING"####";j&(q,12)
  427. RETURN
  428.  
  429. inac:
  430. COLOR 15,2
  431. LOCATE 17,34:PRINT STRING$(4," ")
  432. LOCATE 17,34:PRINT USING"####";j&(q,6)
  433. RETURN
  434.  
  435. buch:
  436. COLOR 1,2
  437. LOCATE 20,34:PRINT STRING$(4," ")
  438. LOCATE 20,34:PRINT USING"####";j&(q,7)
  439. RETURN
  440.  
  441. pays:
  442. COLOR 1,2
  443. LOCATE 22,34:PRINT STRING$(4," ")
  444. LOCATE 22,34:PRINT USING"####";j&(q,8)
  445. RETURN
  446.  
  447. gard:
  448. COLOR 1,2
  449. LOCATE 24,34:PRINT STRING$(4," ")
  450. LOCATE 24,34:PRINT USING"####";j&(q,9)
  451. RETURN
  452.  
  453. guer:
  454. COLOR 1,2
  455. LOCATE 26,34:PRINT STRING$(4," ")
  456. LOCATE 26,34:PRINT USING"####";j&(q,10)
  457. RETURN
  458.  
  459. resultat:
  460. WINDOW 2,,(12,126)-(210,206),0,1
  461. PRINT
  462. IF j&(q,14)=1 THEN PRINT "Votre attaque a échoué":PRINT
  463. IF j&(q,14)=2 THEN PRINT "Votre attaque a réussi":PRINT
  464. IF j&(q,15)=1 THEN PRINT "Les envahisseurs ont fui":PRINT
  465. IF j&(q,15)=2 THEN PRINT "Votre village a été pillé":PRINT
  466. j&(q,14)=0:j&(q,15)=0
  467. IF mortcombat%>0 THEN PRINT "Morts au combat   :"mortcombat%:PRINT
  468. PRINT "Récoltes          :"recolte%:PRINT
  469. IF mortfaim%>0 THEN PRINT "Morts de faim     :"mortfaim%
  470. IF arrivant%>0 THEN PRINT "Nouveaux arrivants:"arrivant%
  471. mortcombat%=0:mortfaim%=0:recolte%=0:arrivant%=0:j&(q,13)=0
  472. RETURN
  473.  
  474. machinejoue:
  475.  
  476. COLOR 1,2:LOCATE 2,38:PRINT CHR$(48+q)
  477. GOSUB arge:GOSUB surf:GOSUB habi:GOSUB bois:GOSUB lanc:GOSUB char
  478. GOSUB inac:GOSUB buch:GOSUB pays:GOSUB gard:GOSUB guer
  479. COLOR 1,10:LOCATE 29,10:PRINT "La tribu n°"q"joue !!!"
  480. ventebois1:
  481. IF j&(q,4)=0 THEN achatcharrues1
  482. rp=1+INT(RND*j&(q,4))
  483. j&(q,4)=j&(q,4)-rp:GOSUB bois
  484. j&(q,1)=j&(q,1)+rp:GOSUB arge
  485. achatcharrues1:
  486. IF j&(q,1)<95 THEN deboisement1
  487. j&(q,12)=j&(q,12)+1:GOSUB char
  488. j&(q,1)=j&(q,1)-75:GOSUB arge
  489. deboisement1:
  490. rp=INT(j&(q,6)/2.5)
  491. FOR y=y1%(q) TO y2%(q) STEP pasy%(q)
  492. FOR x=x1%(q) TO x2%(q) STEP pasx%(q)
  493. IF rp=0 OR j&(q,6)<1 THEN cultures1
  494. IF prop%(x,y)=q THEN
  495.   IF vege%(x,y)<7 THEN
  496.       px=vege%(x,y)
  497.       vege%(x,y)=8:PUT(x*15-9,y*15-9),d%(0,7),PSET
  498.       j&(q,6)=j&(q,6)-1:GOSUB inac
  499.       j&(q,7)=j&(q,7)+1:GOSUB buch
  500.       j&(q,4)=j&(q,4)+px:GOSUB bois
  501.       rp=rp-1
  502.     END IF
  503. END IF
  504. NEXT x,y
  505. cultures1:
  506. IF j&(q,1)=0 OR j&(q,6)=0 THEN achatlance1
  507. rp=INT(j&(q,6)/1.5)
  508. IF j&(q,7)=0 THEN rp=INT((j&(q,2)-9)*.75)
  509. FOR y=y1%(q) TO y2%(q) STEP pasy%(q)
  510. FOR x=x1%(q) TO x2%(q) STEP pasx%(q)
  511. IF rp=0 OR j&(q,6)<1 OR j&(q,1)<1 THEN achatlance1
  512. IF prop%(x,y)=q THEN
  513.   IF vege%(x,y)=7 OR vege%(x,y)=8 THEN
  514.       vege%(x,y)=9:PUT(x*15-9,y*15-9),d%(0,9),PSET
  515.       j&(q,6)=j&(q,6)-1:GOSUB inac
  516.       j&(q,8)=j&(q,8)+1:GOSUB pays
  517.       j&(q,1)=j&(q,1)-1:GOSUB arge
  518.       rp=rp-1
  519.     END IF
  520. END IF
  521. NEXT x,y
  522. achatlance1:
  523. rap=j&(q,6)-j&(q,5)
  524. IF rap<1 THEN gardiennage1
  525. FOR k=rap TO 1 STEP-1
  526. IF j&(q,1)<10 THEN gardiennage1
  527. j&(q,5)=j&(q,5)+1:GOSUB lanc
  528. j&(q,1)=j&(q,1)-10:GOSUB arge
  529. NEXT
  530. gardiennage1:
  531. IF j&(q,6)<1 OR j&(q,5)<1 THEN guerriers1
  532. rp=INT(j&(q,6)/2)
  533. IF rp>=j&(q,5) THEN rp=INT(j&(q,5)/2)
  534. IF rp>0 THEN
  535.       j&(q,6)=j&(q,6)-rp:GOSUB inac
  536.       j&(q,9)=j&(q,9)+rp:GOSUB gard
  537.       j&(q,5)=j&(q,5)-rp:GOSUB lanc
  538.       j&(q,13)=j&(q,13)+rp
  539. END IF
  540. guerriers1:
  541. IF j&(q,6)=0 OR j&(q,5)=0 THEN finexpedition1
  542. rp=j&(q,6)
  543. IF  rp>j&(q,5) THEN rp=j&(q,5)
  544. IF rp>0 THEN
  545.       j&(q,6)=j&(q,6)-rp:GOSUB inac
  546.       j&(q,10)=j&(q,10)+rp:GOSUB guer
  547.       j&(q,5)=j&(q,5)-rp:GOSUB lanc
  548.       j&(q,13)=j&(q,13)+rp
  549. END IF
  550. expedition1:
  551. IF j&(q,10)=0 THEN finexpedition1
  552. rp=INT(RND*5):IF rp=q THEN expedition1
  553. IF rp>0 AND j&(rp,2)>9 THEN j&(q,11)=rp:GOTO finexpedition1
  554. j&(q,9)=j&(q,9)+j&(q,10):j&(q,10)=0
  555. GOSUB gard:GOSUB guer
  556. finexpedition1:
  557. GOSUB pause
  558. GOSUB videligne
  559. RETURN
  560.  
  561. pause:
  562.  
  563. WHILE INKEY$=""
  564. WEND
  565. RETURN
  566.  
  567. presentation:
  568.  
  569. PAINT(0,0),7,1
  570. COLOR 2,7
  571. PRINT
  572. PRINT "                TRIBUS"
  573. PRINT "                ------"
  574. PRINT
  575. COLOR 13,7
  576. PRINT "Vous êtes à la tête d'une petite tribu":PRINT
  577. PRINT "que vous devez faire vivre...         ":PRINT
  578. PRINT
  579. PRINT "1 bûcheron coupera 1 hectare de forêts":PRINT
  580. PRINT "Avec 1 piece d'or, un paysan cultivera":PRINT
  581. PRINT "1 hectare de champ...                 ":PRINT
  582. PRINT "L'utilisation de charrues les aidera à":PRINT
  583. PRINT "augmenter le rendement des cultures...":PRINT
  584. PRINT
  585. PRINT "Voici les prix du commerçant du coin :":PRINT
  586. PRINT "          - Bois       1 P.O":PRINT
  587. PRINT "          - Lance     10 P.O":PRINT
  588. PRINT "          - Charrue   75 P.O":PRINT
  589. COLOR 0,7
  590. PRINT "          (c) A Bonney  1988";
  591. RETURN
  592.  
  593. REM     Terminé le lundi 28-11-88 à 1h24
  594.  
  595. REM         (c) 1988   Alain BONNEY
  596.  
  597.